/**
 * Copyright(c) 2014 Xunton Solutions
 *
 * History:
 *   15-1-10 下午3:59 Created by dwzhang
 */
package com.jade.modules.region;

import java.util.List;

import com.jade.framework.base.criterion.Criteria;
import com.jade.framework.base.util.PagingList;

/**
 * 地区数据访问接口。
 *
 * @author sky
 * @version 1.0 13-4-23 上午11:38
 */
public interface RegionDao
{
    /**
     * 新增一个根地区.
     *
     * @param region 新增地区
     */
    public void addRegion(Region region)
            throws RegionException;

    /**
     * 更新地区信息。
     *
     * @param region 新增地区
     */
    public void updateRegion(Region region)
            throws RegionException;

    /**
     * 根据地区标识获取地区.
     *
     * @param id 地区标识
     */
    public Region getRegion(String id);

    /**
     * 移除一个地区。
     *
     * @param region 地区
     */
    public void removeRegion(Region region)
            throws RegionException;

    /**
     * 根据关键字查询地区信息。
     *
     * @param criteria 搜索的层次级别
     * @return 满足条件地区列表。
     */
    public List<Region> listRegion(Criteria criteria);

    /**
     * 根据关键字分页查询地区信息。
     *
     * @param criteria 搜索的层次级别
     * @return 满足条件的地区列表。
     */
    public PagingList<Region> queryRegion(Criteria criteria);
}